RabbitMq exchange四种方式总结 (极简)

作者: 李多多 日期: 2019-09-08
RabbitMQ
RabbitMq exchange四种方式总结 (极简)

1.direct

Direct Exchange :一对一完全匹配,需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。exchange在和queue进行binding时会设置routingkey,将消息发送到exchange时会设置对应的routingkey,只有这两个routingkey完全相同,exchange才会选择对应的binging进行消息路由。

image.png

2.fanout

Fanout Exchange :一对多完全匹配。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。

总结:直接将消息路由到所有绑定的队列中,无须对消息的routingkey进行匹配操作。(广播)
image.png

3.topic

Topic Exchange :多对多正则匹配。此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号“*”匹配一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”

此类型exchange和direct类型差不多,但direct类型要求routingkey完全相等,这里的routingkey可以有通配符:’*’,’#’。

image.png

4.headers

headers Exchange :headers交换器允许你匹配AMQP消息的header而非路由键。除此之外,headers交换器和direct交换器完全一致,但性能会差很多。因此它并不太实用,而且几乎再也用不到了

springboot+rabbitmq的简单案例(4种方式)